package com.baofu.paycore.service.facade;

import com.baofu.paycore.service.facade.model.CancelResDTO;
import com.baofu.paycore.service.facade.model.transfer.*;

import com.system.commons.result.Result;

/**
 * 转账接口
 *
 * <p>
 *     1 转账接口
 * </p>
 * User: LZQ Date: 2016/05/19  Version: 1.0
 */
public interface TransferServiceFacade {

    /**
     * 转账接口
     *
     * @param transferDTO               转账请求参数
     * @return                          转账结果
     *                                   response.isSuccess()标示方法的远程调用状态，方法实际执行结果从result 取值
     */
    Result<TransferResDTO> transfer(TransferDTO transferDTO,String tradeLogId);

    /**
     * 转账撤销接口
     *
     * @param cancelTransferDTO         转账撤销请求参数
     * @param tradeLogId                日志id
     * @return                          response.isSuccess()标示方法的远程调用状态，方法实际执行结果从result 取值
     */
    Result<CancelResDTO> cancelTransfer(CancelTransferDTO cancelTransferDTO,String tradeLogId);


    /**
     * 解冻转账接口
     * @param unfreezeTransferDTO
     * @param tradeLogId
     * @return
     */
    Result<UnfreezeTransferResDTO> unfreezeTransfer(UnfreezeTransferDTO unfreezeTransferDTO,String tradeLogId);
}
